package com.kira.scaffoldmvc.SnowFlake;

import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;

public class HutoolSnowflakeUsage {
    public static void main(String[] args) {

        // 定义工作机器ID和数据中心ID，取值范围根据算法设计，一般是0 - 31
        // 这里示例设置为1和1，实际使用中根据部署情况调整
        //示例：在数据中心 A 中，有 3 台机器，它们的 Worker ID 可以分别设为 0、1、2
        //标识不同的地理位置或集群（如云服务中的 Region）,作用：确保不同数据中心的机器生成的 ID 不重复
        long workerId = 1;
        long datacenterId = 1;

        // 创建Snowflake实例
        Snowflake snowflake = IdUtil.createSnowflake(workerId, datacenterId);

        // 生成唯一ID
        long id = snowflake.nextId();
        System.out.println("使用Hutool雪花算法生成的ID: " + id);

        // 也可以直接使用IdUtil的静态方法生成ID（使用默认的workerId和datacenterId配置）
        //Hutool 默认配置下，workerId（工作机器 ID ）和datacenterId（数据中心 ID）都为 0
        long anotherId = IdUtil.getSnowflake().nextId();
        System.out.println("使用默认配置生成的ID: " + anotherId);

    }

}